package design.patterns.behavioral.strategy;

/**
 * @author gjx
 * @version v1.0
 * @Description
 * @date 2019/4/10 10:56
 */

/**
 * 策略模式定义了一系列算法，并将每个算法封装起来，使他们可以相互替换
 * ，且算法的变化不会影响到使用算法的客户。
 */
public class Client {
    public static void main(String[] args) {
        login("qq");
        login2("WeChat");
    }

    public static void login(String name){

        LoginActivity loginActivity = new LoginActivity();
        if("qq".equals(name)) {
          loginActivity.setLoginStrategy(new QQLogin());
        }else if("WeChat".equals(name)){
            loginActivity.setLoginStrategy(new WeChatLogin());
        }
        loginActivity.login();
    }
    public static void login2(String name){
        LoginStrategy loginStrategy = LoginStrategyFactory.getLoginStrategy(name);
        loginStrategy.login();
    }
}
